package ar.lalosoft.adMat.domain;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

import ar.lalosoft.adMat.domain.exceptions.MateriaInexistenteException;
import ar.lalosoft.adMat.domain.exceptions.MateriaRepetidaException;

public class ContenedorMaterias {
	
	private List<Materia> lista; //todas las materias del alumno


	public ContenedorMaterias(){
		lista = new ArrayList<Materia>();
	
	}
	

	public void agregar(Materia mat) {
		if(lista.contains(mat)){
			throw new MateriaRepetidaException("La materia ya existe!!");
		}
		lista.add(mat);
	}

	public boolean isEmpty() {
		return lista.isEmpty();
	}

	public void eliminar(int cod) {
		Iterator<Materia> itMateria = lista.iterator();
		boolean encontro = false;
		Materia aEliminar = null;
		while(itMateria.hasNext() && !encontro){
			Materia tmp = itMateria.next();
			if(tmp.getCod() == cod){
				aEliminar = tmp;
			}
		}
		
		if(!encontro){
			throw new MateriaInexistenteException("La materia no existe!");	
		} else {
			lista.remove(aEliminar);
		}
	}
	
	public List<Materia> getLista(){
		return lista;
	}
	
//	public Map<Integer,Materia> getMapa(){
//		return mapa;
//	}

	public boolean existe(int cod) {
		Iterator<Materia> itMateria = lista.iterator();
		boolean encontro = false;
		while(itMateria.hasNext() && !encontro){
			Materia tmp = itMateria.next();
			encontro = tmp.getCod() == cod;
		}
				
		return encontro;	
		
	}

}
